Automated and Context-Aware Repair of Color-Related Accessibility Issues for Android Apps
 · 12 min read
1. 摘要
约 15% 的全球人口受到各种残障或视力障碍的影响,但许多移动端的用户体验(UX)设计师和开发者在开发 App 时并未重视可访问性问题。这意味着每七个人中就有一个用户在使用 App 时面临不平等的体验,这不仅影响用户,也可能违反相关法规。实际上,如果 App 开发时考虑可访问性,不仅能提升整体用户体验,还能提升商业价值。因此,已有不少研究和检测工具被提出用于识别可访问性问题。
然而,与检测相比,修复工作明显滞后,尤其是“颜色相关的可访问性问题”——比如文字对比度不足和图片对比度不佳,这类问题极大地影响了低视力用户和老年用户的使用体验,而当前的修复方法对此无能为力。
为此,我们提出了 Iris:一种自动化且具备上下文感知能力的方法,用于修复颜色相关的可访问性问题。该方法通过设计一致性的颜色替换策略和属性定位算法,在修复问题的同时保持 UI 风格的一致性。实验显示,Iris 可达到 91.38% 的修复成功率,且效率较高。用户调研也表明其结果令人满意,开发者反馈积极 。我们在 GitHub 上提交的 40 个 Pull Request 中已有 9 个被合并,另有 4 个正在积极沟通后续修复。Iris 工具现已开源,旨在推动移动可访问性修复领域的进一步研究。
2. introduction
懒的讲了,感觉没啥用。反正大意就是解决这三个问题
1. 修复后必须保持原始 UI 页面的设计风格一致性; 2. 必须准确定位待修复的 UI 组件及其颜色属性; 3. 修复结果需被真实用户和开发者接受,具备实用性。
作者提出了 iris,可以弄一个流程图体现该作者的研究工作
                  [1] APK 文件
                       ↓
        ┌───────────────────────────────┐
        │        Xbot 检测工具           │ ← 基于 Accessibility Scanner
        └───────────────────────────────┘
                       ↓
               输出内容包括:
               - 无障碍检测报告(JSON / XML)
               - UI 页面截图(PNG)
        ┌────────────────────────────────────────┐
        │               Iris 修复系统              │
        └────────────────────────────────────────┘
                       ↓
  1. 颜色参考数据库(Reference DB)
     - 收集 9978 个 App 的 UI 配色
     - 用于推荐合适的替换颜色
  2. 上下文感知颜色选择(Context-aware)
     - 保持风格一致性(HSV 模型、色轮协调)
     - 决定修改 foreground 还是 background
  3. 属性定位模块(Attribute-to-Repair)
     - 定位 XML 或 Java 中待修复组件
     - 分析 textColor、background 等属性
  4. 图像修复模块(仅针对图标)
     - 判断功能性 vs 装饰性图像
     - 调整颜色或替换 vector 图标
                       ↓
        ┌───────────────────────────────┐
        │         修复后的 APK 输出       │
        └───────────────────────────────┘
3. Preliminary
3.1 标准
需要解决以下问题:
- 普通文本要求前景色与背景色的对比度 ≥4.5:1*
- 大号加粗文本则要求 ≥3:1
3.2 颜色实现方式
在 xml 文件中,颜色一般是这样表达的
<TextView android:textColor="#80ff0000" />
<Button android:background="#80ff0000" />
提出 iris 用于修复这样的问题